package com.irdstudio.efp.esb.api.util;

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
  * 外部系统字典项值转为本系统字典项值，项目启动加载类
  * @author qiuyf
  * @since 2019年1月24日 上午8:58:28
  * @version 1.0
 */
public class SDicMappingServer extends PropertyPlaceholderConfigurer{

	private static final Map<String, String> mapServer = new HashMap<>();
	
	/**
	  * 读取dicMappings.properties配置文件，组装成 KEY: opttypeEnname, VALUE: enname
	  * @param beanFactoryToProcess
	  * @param props
	  * @throws BeansException
	  * @author qiuyf
	  * @since 2019年1月24日 上午8:59:52
	  * @version 1.0
	 */
	@Override
	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
		super.processProperties(beanFactoryToProcess, props);
		for (Object key : props.keySet()) {
			String keyStr = key.toString();
			String value = props.getProperty(keyStr);
			String[] temp = value.split("_");
			if(temp.length == 3) {
				mapServer.put(temp[0].trim()+temp[1].trim() , temp[2].trim());
			}
		}
	}
	
	/**
	  * 通过字典项类型，字典项值获取本地对应字典项值
	  * @param opttype 字典项类型
	  * @param value   外部系统字典项值
	  * @return String key:不为空，返回本地系统字典项值；key为空，返回入参字典项值
	  * @author qiuyf
	  * @since 2019年1月24日 上午9:03:21
	  * @version 1.0
	 */
	public static String getLocalSysDicVal(String opttype, String value){
		String mapStr = opttype.trim() + value.trim();
		if(mapServer.containsKey(mapStr)) {
			return mapServer.get(mapStr);
		}
		return value;
	}

}
